aboutsummaryrefslogtreecommitdiff
path: root/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-24 13:09:50 +0000
committerFuwn <[email protected]>2026-01-24 13:09:50 +0000
commit396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch)
treeb9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx
downloadumami-main.tar.xz
umami-main.zip
Initial commitHEADmain
Created from https://vercel.com/new
Diffstat (limited to 'src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx')
-rw-r--r--src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx
new file mode 100644
index 0000000..a7ed399
--- /dev/null
+++ b/src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx
@@ -0,0 +1,40 @@
+import { LoadingPanel } from '@/components/common/LoadingPanel';
+import { useMessages } from '@/components/hooks';
+import { useWebsiteSessionStatsQuery } from '@/components/hooks/queries/useWebsiteSessionStatsQuery';
+import { MetricCard } from '@/components/metrics/MetricCard';
+import { MetricsBar } from '@/components/metrics/MetricsBar';
+import { formatLongNumber } from '@/lib/format';
+
+export function EventsMetricsBar({ websiteId }: { websiteId: string }) {
+ const { formatMessage, labels } = useMessages();
+ const { data, isLoading, isFetching, error } = useWebsiteSessionStatsQuery(websiteId);
+
+ return (
+ <LoadingPanel data={data} isLoading={isLoading} isFetching={isFetching} error={error}>
+ {data && (
+ <MetricsBar>
+ <MetricCard
+ value={data?.visitors?.value}
+ label={formatMessage(labels.visitors)}
+ formatValue={formatLongNumber}
+ />
+ <MetricCard
+ value={data?.visits?.value}
+ label={formatMessage(labels.visits)}
+ formatValue={formatLongNumber}
+ />
+ <MetricCard
+ value={data?.pageviews?.value}
+ label={formatMessage(labels.views)}
+ formatValue={formatLongNumber}
+ />
+ <MetricCard
+ value={data?.events?.value}
+ label={formatMessage(labels.events)}
+ formatValue={formatLongNumber}
+ />
+ </MetricsBar>
+ )}
+ </LoadingPanel>
+ );
+}